package com.clstu.staticmathod_;

public class Single {//单例模式，只能创建一个对象的模式（饿汉式，一定会创建-可能用不到）
                     //可能会浪费大量资源，单例模式都是重量级对象
    public static void main(String[] args) {
        GirlFriend hh=GirlFriend.getInstance();
        GirlFriend ll=GirlFriend.getInstance();
        System.out.println(hh);
        System.out.println(ll);
        System.out.println(hh==ll);//同一个对象，类加载的时候就已经被创建了，且不可被构造，只能是在加载的时候自行构造
    }
}
class GirlFriend{
    private String name;
    private static int n1=100;
    private static GirlFriend gf = new GirlFriend("xiaohh");//静态字段，只会创建一次，可被静态方法调用

    private GirlFriend(String name){//私有化，保证不会被创建出第二个这样的对象出来
        this.name=name;
    }

    public static GirlFriend getInstance(){//静态方法，可以不用创建对象调用，返回的对象也只能是静态的
        return gf;
    }

    @Override
    public String toString() {
        return "GirlFriend{" +
                "name='" + name + '\'' +
                '}';
    }
}